General Packet Radio Service (GPRS) is an overlay onto the GSM (Global System for Mobile Communications) wireless cellular phone network that allows IP (Internet Protocol) based packet switched data communications. GPRS is an attractive medium for wireless data devices because it is packet switched instead of circuit switched and it is priced on a volume basis as opposed to a time basis. GPRS technology is also economically attractive when compared with other packet services, such as Cellular Digital Packet Data (CDPD).
Wide coverage and low cost make GPRS a very attractive transport mechanism for in-vehicle devices and wireless handsets. A GPRS device can provide packet data based real time dispatch services in the U.S., Canada, and Europe, and service is expanding to other regions as well.
The GPRS overlay on the GSM network provides for IP connectivity between the mobile devices and the platform (base station); however, the common implementation does not allow termination of IP connections at the mobile device. In addition, IP addresses assigned to mobiles will be private and dynamic. A protocol (such as the UDP-based protocol used with CDPD) that does not account for these factors cannot be used.
The GPRS data implementation differs greatly from that of CDPD. CDPD devices have fixed, public IP addresses. This means that their address on the Internet is always known and that data can be sent to them at any time, as long as they have CDPD service available.
The standard GPRS implementation is designed to support web browsing from wireless handsets. This is an operational model that is very familiar to the wireless carriers. This model is a TCP-based request/response paradigm. With this implementation, there are no device terminated IP connections. Devices are assigned dynamic, private IP addresses that reside behind a Network Address and Port Translator (NAPT). This scheme has the advantage to the wireless carrier of conserving public IP addresses and preventing unsolicited data (e.g. spam) from being sent to the device, and thus avoiding the billing issues related to it.
The lack of a device terminated IP connection is a significant disadvantage in telemetry applications and has three major difficulties. First, in order to send any data to a wireless device, a server side application must wait for the device to open an IP connection to the server. The frequency of device reporting and the time duration for which the connection can be maintained will determine the latency of messages sent to the device.
A second difficulty that is associated with the server side waiting for a device to open an IP connection, is the handling of messages targeted for a client device that has not opened connection with a server. For a system such as UDP (User Datagram Protocol) on CDPD, a simple FIFO (first in, first out) queue will suffice since the message destination is always known. However, for a system such as GPRS, messages may accumulate and/or age while a server waits for a device to establish a connection.
In production network environments, the communications workload is divided among many servers to provide both redundancy and load balancing. With CDPD, outbound messages may simply be forwarded to any server for transmission since CDPD devices have public static IP addresses. However, with GPRS, only the server instance to which a device connects may send an outbound message to the device. A practice of assigning each client device a dedicated server may result in workload imbalances among the servers depending upon the client device population activity. In a dedicated server environment, a portion of the servers will typically be under-utilized. A more efficient approach is to use load balancing, that is, assigning client devices on the basis of available servers. In a balanced load environment it is uncertain which server will be serving a new client at any particular time, and a FIFO queue will be inadequate for the task. The queuing mechanism must be able to deliver an outbound message to the particular server instance to which a device has connected.
The third difficulty with using GPRS for telemetry communications between a client device and a server is minimizing the overall cost. When a connection oriented protocol such as TCP (Transmission Control Protocol) is used, a GPRS carrier may have a time-out period for a connection that has not been used for a period of time. For telemetry applications that have periodic data transmissions with a period that exceeds the time-out period of the carrier, the overhead of frequent setup and teardown of connections will increase the cost.
The User Datagram Protocol (UDP) is a connectionless protocol with a minimum of packet overhead. Data are sent with no guarantee of delivery or handshaking between the sender and recipient. UDP is desirable for use in wireless links because of its low overhead and because delivery guarantee protocols are completely under the control of the applications, which can further minimize airtime costs.
However, in order for UDP to work, the recipient IP address must be known to the sender. In the case of GPRS, where the device IP is dynamic and private, the device IP address is not known to the platform until the device sends data to the platform. Once the device IP becomes known to the platform, there is still no guarantee that the platform will be able to send data back to the device because the GPRS carrier's equipment is not required to keep the IP and port translation alive indefinitely after the packet is sent.
Dynamic Host Configuration Protocol (DHCP) is a communications protocol that lets network administrators manage centrally and automate the assignment of Internet Protocol (IP) addresses in an organization's network. Each device connecting to the Internet needs a unique IP address. DHCP automatically sends a new IP address when a device is activated in the network. DHCP uses the concept of a “lease” or amount of time that a given IP address will be valid for a computer. The lease time can vary depending on how long a user is likely to require the Internet connection using very short leases, DHCP can dynamically reconfigure networks in which there are more computers than there are available IP addresses. GPRS carriers use very short DHCP lease timeouts for this reason. Network. Address and Port Translation (NAPT) also addresses the problem of having a large number of devices and too few public IP address by limiting the number of public IP addresses being used. Private networks use private IP addresses when communicating locally. However, off-network traffic goes through a NAPT. A NAPT translates the internal network's IP address/port pairs to public IP address/port pairs. This gives the device a public identity on the Internet. Packets sent to the device from the Internet are sent to this public identity. The NAPT performs a reverse (i.e., public-to-private) mapping in order to route a packet back to the device. The lifetime of these translations is also limited to very short time intervals in GPRS networks.
The Transmission Control Protocol (TCP) is a connection-oriented protocol that is extensively used for communication between computers using IP. The TCP protocol stack provides for guarantee of delivery and a stateful connection between computers. Its disadvantage for wireless communication is the large amount of overhead required for TCP to provide its functionality. Further, the TCP stack assumptions about retry intervals, packet loss, and latencies are not well suited for wireless interfaces. For effective wireless use, the TCP stack must be modified to tolerate an unreliable interface. The advantage of TCP for GPRS implementation is that TCP is used for normal web browsing; therefore, the carriers' network equipment must be configured to support use of TCP in this manner.
Thus, a need exists for a method that provides for efficient telemetry communications over GPRS with minimal overhead. There is also a need for a method of queuing of messages in a multiple server system using connection-oriented protocols over GPRS.